test: run tests on multiple node versions - #22420
Conversation
|
Note the current test failure seems to be because the median test run is faster then expected? See poll_spec.ts |
|
Is this something that you still want to land? |
|
Yeah we'd still like to do this one. I had I think all but one test green but have been working on #23074 instead lately. |
|
@alan-agius4 there is one TODO left here but I think this is worth landing as-is for now. WDYT? |
| # TODO: test on multiple node versions | ||
| # Some tests use specific ports and can not be run concurrently | ||
| # Some tests fail for unknown reasons when run on multiple platforms |
There was a problem hiding this comment.
These tests are probably the most important that should be ran on multiple platforms.
Do you have examples of the failures?
Probably we can investigate this in the near future.
There was a problem hiding this comment.
One reason migth be the devservers all using port 4200 which we should be able to configure to be random. I'll look into that more if this test is important.
There was a problem hiding this comment.
That shouldn’t be hard to do as the CLI does support port 0.
I can take a look at these maybe in a week.
There was a problem hiding this comment.
I am happy to get the setup in before that. Unless @clydin has any reservations.
There was a problem hiding this comment.
I'm going to work on this and push to this PR but you can merge the first commit now if you'd like
| # Architect resolves output files from data files, and this isn't possible without runfile support. | ||
| test --enable_runfiles | ||
|
|
||
| build --experimental_remote_merkle_tree_cache No newline at end of file |
There was a problem hiding this comment.
This caches the analysis of bazel actions better. Because we have exports_directories_only = False (which ts_library requires?) every single file in the node_moduels gets traversed instead of only the package folders which creates a giant tree. This is also the reason for increasing the circleci resource_class.
|
The flakyness of these tests is very odd, and I think a lot of it has nothing to do with this change. Things like |
Strange as I haven’t seen any similar flakes on the main branch recently. |
| exclude_prefixes = [ | ||
| "packages", # Exclude compiled outputs of dependent packages | ||
| ], | ||
| allow_overwrites = True, |
There was a problem hiding this comment.
This needed to be added due to an update to aspect_bazel_lib that someone else must have done. I don't fully understand why the build didn't fail until this PR though?
There was a problem hiding this comment.
I've reverted this for now to make this PR the absolute minimum number of changes.
|
@alan-agius4 we'd like to merge this as-is without actually enabling the multiple versions and just setting up the toolchains + BUILDs. It seems like these tests are very flaky and doubling the number of them makes it fail what seems like 100% of the time. Specifically the |
|
@jbedard can you please rebase? |
|
Since this change went in, test flakiness have increased. One of the main errors is |
|
@alan-agius4 can we increase the circleci resource_class? |
|
Or it might actually be better as a separate circleci step per node version? Then we're doubling the number of steps instead of number of concurrent tests. That is probably required for the e2e tests so might be a good prefactor that we can do first... |
|
We have discussed this during our meeting today and for the time being until we find out the cause of the increase in memory usage. We will like to disable testing on multiple node versions. The main reasons for this is that we don’t have many targets which justice usage of 14Gb memory considering we also use RBE. An increase the resource class would also double the credit usage if we go with I am curious to know which additional “steps” you thing we can share. |
|
The increase in memory usage is from doubling the number of tests running concurrently in the Today we're running the different node versions concurrently in one circleci step within the test job. We could do the same as the |
But we are using RBE so they are not actually run on circle. Also I wouldn’t expect 14GB of memory to be used just to run these tests considering we don’t have many targets. |
Right... you're sure bazel reporting those means it is the circleci machine and not the remote one? |
Looking at the bazelrc... isn't that only configuring bazel build (not test) to run remotely? |
|
test inherits from build. https://docs.bazel.build/versions/main/guide.html#option-defaults |
|
If it is running remotely why would |
|
It does appear that there are some tests that run locally. |
|
Right, there are a few tagged as no-remote I think due to protractor/webdriver issues: angular-cli/packages/angular_devkit/build_angular/BUILD.bazel Lines 298 to 299 in 9171543 |
|
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
No description provided.